package unmsm.fisi.tesis.dao;

import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

import unmsm.fisi.tesis.coneccion.ConexionWithSQL;
import unmsm.fisi.tesis.entidad.Cromosoma;
import unmsm.fisi.tesis.entidad.Generacion;
import unmsm.fisi.tesis.entidad.analisis.CromosomaFitnes;

public class GeneracionDAO {
	
public static  List<Generacion> obtenerGeneracion() {
		
		Connection cnx = ConexionWithSQL.obtenerConexion();
		
		Generacion  generacion;
		List<Generacion> listaGeneraciones = new ArrayList<Generacion>();
			try
			{
				CallableStatement cstmt = cnx.prepareCall("{call dbo.sp_obtenerGeneracion(  )}");
			    ResultSet rs =  cstmt.executeQuery();
			     while(rs.next())
				{
			    	 generacion = new Generacion();
			    	 generacion.setNumeroGeneracion(rs.getInt("NUMEROGENERACION"));
			    	 generacion.setNumeroIteraciones(rs.getInt("ITERACIONES"));
			    	 generacion.setDetalle(rs.getString("DETALLE"));
			    	 
			    	 listaGeneraciones.add(generacion);
				}
				rs.close();
				cstmt.close();
			}
			catch(Exception e)
			{
				e.printStackTrace();
				System.out.print(e.getMessage());
				
			}finally {
				 if (cnx != null) try { cnx.close(); } catch(Exception e) {e.printStackTrace();}
	        }
			
		return listaGeneraciones;
	}

public static void guardarResumenDeAlgoritmo() {
	  
	Connection con = ConexionWithSQL.obtenerConexion();
	//con.setAutoCommit(true);
	try {
		   
	      CallableStatement cstmt = con.prepareCall("{call dbo.sp_guardarResumenAlgoritmoGenetico( )}");
	      
	      //cstmt.setInt("NUMEROCROMOSOMA", individuo.getNumeroCromosoma());
	      //cstmt.registerOutParameter("managerID", java.sql.Types.INTEGER);
	      cstmt.execute();
	      //System.out.println("MANAGER ID: " + cstmt.getInt("managerID"));
	      cstmt.close();
	   }
	   catch (Exception e) {
	      e.printStackTrace();
	   }
	   finally {
			 if (con != null) try { con.close(); } catch(Exception e) {e.printStackTrace();}
        }
}

}
